<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            //匿名函数的自动调用：通过在方法后加上小括号
            //（1）声明变量
            //var f1 = function(){alert("f1");}();
            //  (2) ()包裹
            //(function(){alert("f2");}());
            //（3）void
            //void function(){alert("f3");}();
            // (4) 
            (function(){alert("f4");})();
            //Example: 为person对象的所有属性添加getter/setter方法
            function Person(properties){
                for(var p in properties){
                    //匿名函数自动调用方式2
                    (function(context){
                        var t = p;
                        context["get" + t] = function(){return properties[t];}
                        context["set" + t] = function(val){properties[t] = val;}
                    }(this));  //如果不加this参数，那么所添加的两个对象函数所属为匿名函数；添加this后，由于this指示的为函数Person对象，所以添加的对象函数所属即变为Person对象
                }
            }

            var p = new Person({name:"王帅",sex:"男"});
            alert(p.getname());
            alert(p.getsex());
            alert(p.name);//Popup:undefined
        </script>
    </head>
    <body>
        TODO write content
    </body>
</html>
